﻿// 1352. 虫洞.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//

#include <iostream>

/*
https://www.acwing.com/problem/content/1354/
农夫约翰在周末进行高能物理实验的时候发生了一些意外，导致他的农场上出现了 N 个虫洞（N 是偶数）。

我们将农场视作一个二维平面，每个虫洞都位于其中的不同点上，也就是说所有虫洞的坐标 (x,y) 均不相同。

根据他的计算，这些虫洞将形成 N/2 个连接对。

例如，如果虫洞 A 和 B 成对连接，那么进入虫洞 A 的生物会从虫洞 B 出来，反之亦然。

这将引发很不愉快的后果。

假设虫洞 A(1,1) 和虫洞 B(3,1) 成对连接，奶牛贝茜从 (2,1) 位置开始沿 x 轴正向移动。

贝茜就会进入到虫洞 B 中，并从虫洞 A 处出来，然后再次移动到虫洞 B 中，以此类推，陷入无限循环。

约翰知道每个虫洞的具体坐标位置，同时知道贝茜会一直沿着 x 轴正向移动，但是她当前的位置约翰并不清楚。

贝茜在沿 x 轴正方向移动时，一旦遇到虫洞则必须进入。

现在请你计算，有多少种不同的虫洞配对方案，可以使得贝茜从某个点开始移动，能够陷入到无限循环之中。

输入格式
第一行包含整数 N，表示虫洞数量。

接下来 N 行，每行包含两个整数 x,y，表示一个虫洞的位置坐标。

输出格式
输出一个整数，表示能够使得贝茜陷入无限循环的虫洞配对方案的总数。

数据范围
2≤N≤12,
0≤x,y≤109
输入样例：
4
0 0
1 0
1 1
0 1
输出样例：
2
样例解释：
方案 1：(0,0) 与 (1,0) 配对，(0,1) 与 (1,1) 配对，贝茜从 (−1,0) 出发就可以陷入无限循环。

方案 2：(0,0) 与 (1,1) 配对，(1,0) 与 (0,1) 配对，贝茜从 (1,1) 处进入虫洞，即可陷入 (1,1)→(0,0)→(1,0)→(0,1)→(1,1)… 的无限循环。
*/
int main()
{
    std::cout << "Hello World!\n";
}

 